#ifndef INC_PALETTE_H
#define INC_PALETTE_H

#include "PaletteItemLr.h"  // clients will probably need this

#include <QWidget>
#include <QButtonGroup>
#include <string>
#include <vector>

class Palette : public QWidget
{
	public:
		Palette(QWidget *parent = NULL);

		/*** ACCESSORS ***/

		/**
		 * Create and add a new tool button based on the specified id of the
		 * form class_subclass, e.g. prototype_concrete. Both the button icon
		 * and the button ordering will be based off this id.
		 * 
		 * @param id the "class_subclass" id for the button
		 * @param listener will receive notifications of button toggling
		 * @return the created QToolButton (e.g., for signal hookup)
		 */
		void add(const std::string& id, PaletteItemLr* listener);

	private:
		const QString _iconPath;
		const QString _iconExt;

		QButtonGroup _btnGroup;
		QLayout* _layout; // init-checked

};

#endif //INC_PALETTE_H

